package bcc.java8.chap04;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 这个例子可以看到了流的优化：
 * limit短路的技巧，满足3个时不再循环
 * filter和map放到了一个循环里，循环合并.
 *
 * @author: bcc
 * 2020/11/3
 */
public class ThreeHighCaloricDishNamesV2 {
    public static void main(String[] args) {
        List<String> list = Dish.menu.stream().
                filter(d -> {
                    System.out.println("filtering :" + d.getName());
                    return d.getCalories() > 300;
                }).
                map(d -> {
                    System.out.println("mapping :" + d.getName());
                    return d.getName();
                }).
                limit(3).
                collect(Collectors.toList());

        System.out.println(list);

    }
}
